interface Bird {
    fly();
    layEggs();
}


interface Fish {
    swim();
    layEggs();
}

function getSmallPet():Fish|Bird{
    return {
        layEggs:()=>{},
        // swim:()=>{}
        fly:()=>{}
    }
}

let pet = getSmallPet()
// ts 也是 稳如老狗 只会返回 这个联合属性中都有的属性 
pet.layEggs
// pet.fly() // 不存在公共的 fly 方法 不确定性

